home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 38 / Amiga Format CD38 (1999-03-15)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-04].iso / -seriously_amiga- / programming / e / unfinishedesrc / civ / civ2.e < prev    next >
Text File  |  1999-01-25  |  39KB  |  1,026 lines

  1. -> Source code for 'The Rout of Civilisation' written by Ian Chapman
  2. -> Concept & Design: Ian Chapman, Marc Bradshaw
  3. -> Some Gfx: Ian Chapman
  4. -> Some Sfx: Ian Chapman, Jonathan Corns
  5. -> Source Code Revision: 0.0.1b
  6. -> Revision Date 21.8.97
  7.  
  8.  
  9. ->Important Information
  10. ->---------------------
  11. -> 2MB OF CHIP RAM IS (probably) NEEDED. If you experience serious gfx probs, reset and try
  12. -> again.
  13. -> Designed with a gfx card in mind on 640x480 256 col display
  14. -> Works on AGA in PAL HIRES LACED 256 cols - although not very nicely
  15. -> Wont work on an ECS or OCS screen.
  16. -> Some parts can be skipped by pressing either or both mousebuttons.
  17.  
  18.  
  19. OPT OSVERSION=39
  20.  
  21. MODULE  'reqtools',
  22.         'libraries/reqtools',
  23.         'intuition/screens',
  24.         'intuition/intuition',
  25.         'exec/memory',
  26.         'dos/dos',
  27.         'graphics/gfx',
  28.         'graphics/text',
  29.         'gadtools',
  30.         'libraries/gadtools',
  31.         'utility/tagitem',
  32.         'exec/ports',
  33.         'exec/nodes',
  34.         'exec/lists',
  35.         'intuition/gadgetclass',
  36.         'tools/easysound',
  37.         'protracker',
  38.         'diskfont'
  39.  
  40. OBJECT framepar
  41. bitmapptr
  42. raster
  43. filesize
  44. width
  45. height
  46. depth
  47. srcx
  48. srcy
  49. destx
  50. desty
  51. ENDOBJECT
  52.  
  53. OBJECT unitvals
  54. energy
  55. movement
  56. attack
  57. defend
  58. ENDOBJECT
  59.  
  60.  
  61.  
  62. ENUM OKAY, NOSCR, NOREQTOOLS, NOMODE, NOGAD, NOPRO, NOFONT, SCRSMALL, PROGEND, PROGQUIT
  63.  
  64. DEF scr:PTR TO screen,
  65.     visual=NIL,
  66.     class,
  67.     iadd:PTR TO gadget,
  68.     mbitmap,
  69.     mbitmapsize,
  70.     mframe:framepar,
  71.     music,
  72.     unitlist[256]:ARRAY OF unitvals
  73.  
  74. ->First set of gadgets are the language selection
  75. CONST   GA_BUT_ENG=0,
  76.         GA_BUT_GER=1,
  77.         GA_BUT_ITA=2,
  78.         GA_BUT_FRE=3,
  79.         GA_BUT_SWE=4,
  80.         GA_BUT_CAN=5,
  81.         GA_BUT_USA=6,
  82. ->Follow set are the main screen gadgets
  83.         GA_START=0,
  84.         GA_OPTIONS=1,
  85.         GA_STORY=2,
  86.         GA_CREDITS=3,
  87.         GA_QUIT=4,
  88. ->The follow are used for the display area actually used!
  89.         DISWIDTH=640,
  90.         DISHEIGHT=480,
  91.         DISDEPTH=8,
  92.         BOXSIZE=40
  93.  
  94.  
  95. PROC main() HANDLE
  96. DEF req:PTR TO rtscreenmoderequester,
  97.     ret,
  98.     musicsize
  99.  
  100. IF (diskfontbase:=OpenLibrary('diskfont.library',39))=NIL THEN Raise(NOFONT)
  101. IF (gadtoolsbase:=OpenLibrary('gadtools.library',37))=NIL THEN Raise(NOGAD)
  102. IF (reqtoolsbase:=OpenLibrary('reqtools.library',37))=NIL THEN Raise(NOREQTOOLS)
  103. IF (ptbase:=OpenLibrary('protracker.library',1))=NIL THEN Raise(NOPRO)
  104.  
  105. req:=RtAllocRequestA(RT_SCREENMODEREQ,NIL)
  106. IF (ret:=RtScreenModeRequestA(req,'Select Screenmode',[RT_REQPOS,REQPOS_POINTER,NIL,NIL]))=NIL THEN Raise(NOMODE)
  107.  
  108. IF req.displaywidth<DISWIDTH THEN Raise(SCRSMALL)
  109. IF req.displayheight<DISHEIGHT THEN Raise(SCRSMALL)
  110.  
  111. IF (scr:=OpenScreenTagList(0,[SA_DEPTH,req.displaydepth,
  112.                               SA_DISPLAYID,req.displayid,
  113.                               SA_SHOWTITLE,NIL,
  114.                               SA_WIDTH,req.displaywidth,
  115.                               SA_HEIGHT,req.displayheight,
  116.                               0,0]))=NIL THEN Raise(NOSCR)
  117.  
  118.  
  119. /**************START OF MAIN SECTION**************/
  120.  
  121. SetRGB4(scr.viewport,0,$0,$0,$0)
  122. SetRGB4(scr.viewport,1,$F,$0,$0)
  123. SetRGB4(scr.viewport,2,$F,$F,$F)
  124. SetRGB4(scr.viewport,3,$0,$0,$F)
  125.  
  126. ->langpal()
  127. playsnd('lang.raw',15000)
  128.  
  129.  
  130. ->Calls the language selection routine
  131. langgads()
  132.  
  133.  
  134. ->Main Screen Pics & Sounds
  135. mbitmap,mbitmapsize:=loadfile('mainpic.raw',MEMF_CHIP)
  136. mainpal()
  137. playsnd('firepass.raw',10000)
  138. maindisplay()
  139. playsnd('thunder.raw',13000)
  140.  
  141. music,musicsize:=loadfile('cabbage.mod',MEMF_CHIP)
  142. Mt_StartInt(music)
  143.  
  144. maingads()
  145.  
  146. FreeMem(mbitmap,mbitmapsize)
  147.  
  148. diskdisplay()
  149.  
  150. Mt_StopInt()
  151. FreeMem(music,musicsize)
  152.  
  153. wilfdisplay()
  154. gamesetup()
  155.  
  156.  
  157. Raise(PROGEND)
  158.  
  159.  
  160. ->Error handler & close down system
  161. EXCEPT DO
  162.     IF exception=PROGEND
  163.         CloseScreen(scr)
  164.         RtFreeRequest(req)
  165.         CloseLibrary(reqtoolsbase)
  166.         CloseLibrary(gadtoolsbase)
  167.         CloseLibrary(ptbase)
  168.         CloseLibrary(diskfontbase)
  169.     ELSEIF exception=PROGQUIT
  170.         FreeMem(mbitmap,mbitmapsize)
  171.         Mt_StopInt()
  172.         FreeMem(music,musicsize)
  173.         CloseScreen(scr)
  174.         RtFreeRequest(req)
  175.         CloseLibrary(reqtoolsbase)
  176.         CloseLibrary(gadtoolsbase)
  177.         CloseLibrary(ptbase)
  178.         CloseLibrary(diskfontbase)
  179.     ELSEIF exception=NOREQTOOLS
  180.         CloseLibrary(gadtoolsbase)
  181.         PrintF('Unable to open reqtools.library V37+\n')
  182.         CloseLibrary(diskfontbase)
  183.     ELSEIF exception=NOGAD
  184.         PrintF('Unable to open gadtools.library V37+\n')
  185.         CloseLibrary(diskfontbase)
  186.     ELSEIF exception=NOSCR
  187.         CloseLibrary(ptbase)
  188.         RtFreeRequest(req)
  189.         CloseLibrary(gadtoolsbase)
  190.         CloseLibrary(reqtoolsbase)
  191.         PrintF('Unable to open screen!\n')
  192.         CloseLibrary(diskfontbase)
  193.     ELSEIF exception=NOMODE
  194.         CloseLibrary(ptbase)
  195.         RtFreeRequest(req)
  196.         CloseLibrary(reqtoolsbase)
  197.         CloseLibrary(gadtoolsbase)
  198.         CloseLibrary(diskfontbase)
  199.         PrintF('No screen mode selected!\n')
  200.     ELSEIF exception=NOPRO
  201.         CloseLibrary(reqtoolsbase)
  202.         CloseLibrary(gadtoolsbase)
  203.         CloseLibrary(diskfontbase)
  204.         PrintF('Unable to open protracker.library V1+\n')
  205.     ELSEIF exception=SCRSMALL
  206.         CloseLibrary(ptbase)
  207.         RtFreeRequest(req)
  208.         CloseLibrary(gadtoolsbase)
  209.         CloseLibrary(reqtoolsbase)
  210.         CloseLibrary(diskfontbase)
  211.         PrintF('Screen Size too small! Minimum Size = 640x480!\n')
  212.     ELSEIF exception=NIL
  213.         CloseLibrary(diskfontbase)
  214.         PrintF('Unable to open diskfont.library V39+\n')
  215.     ENDIF
  216.  
  217. ENDPROC
  218.  
  219.  
  220.  
  221. /*Procedure to display a raw bitmap*/
  222.  
  223. PROC showbitmap(inmap:PTR TO framepar)
  224. DEF mainbit:bitmap,
  225.     planesize
  226.  
  227. planesize:=Div(inmap.filesize,inmap.depth)
  228. InitBitMap(mainbit,inmap.depth,inmap.width,inmap.height)
  229.  
  230. mainbit.planes[0]:=inmap.bitmapptr
  231. mainbit.planes[1]:=inmap.bitmapptr+planesize
  232. mainbit.planes[2]:=inmap.bitmapptr+Mul(planesize,2)
  233. mainbit.planes[3]:=inmap.bitmapptr+Mul(planesize,3)
  234. mainbit.planes[4]:=inmap.bitmapptr+Mul(planesize,4)
  235. mainbit.planes[5]:=inmap.bitmapptr+Mul(planesize,5)
  236. mainbit.planes[6]:=inmap.bitmapptr+Mul(planesize,6)
  237. mainbit.planes[7]:=inmap.bitmapptr+Mul(planesize,7)
  238.  
  239. BltBitMapRastPort(mainbit,inmap.srcx,inmap.srcy,inmap.raster,inmap.destx,inmap.desty,inmap.width,inmap.height,$C0)
  240.  
  241. ENDPROC
  242.  
  243.  
  244.  
  245.  
  246. /*Procedure to setup language GUI*/
  247.  
  248. PROC langgads()
  249. DEF id,
  250.     tattr:PTR TO textattr,
  251.     lwindow:PTR TO window,
  252.     langglist,
  253.     checkquit=NIL,
  254.     but_eng,
  255.     but_ger,
  256.     but_fre,
  257.     but_ita,
  258.     but_can,
  259.     but_usa
  260.  
  261.  
  262.     tattr:=['MegaBall.font',8,0,0]:textattr
  263.     IF (visual:=GetVisualInfoA(scr,NIL))=NIL THEN PrintF('Unable to get visual information!\n')
  264.     IF (langglist:=CreateContext({langglist}))=NIL THEN PrintF('Unable to allocate g context!\n')
  265.     but_eng:=CreateGadgetA(BUTTON_KIND,langglist,[5,7,105,25,'BRITAIN',tattr,0,16,visual,0]:newgadget,[TAG_DONE])
  266.     but_ger:=CreateGadgetA(BUTTON_KIND,but_eng,[5,40,105,25,'DEUTSCHLAND',tattr,1,16,visual,NIL]:newgadget,[TAG_DONE])
  267.     but_ita:=CreateGadgetA(BUTTON_KIND,but_ger,[5,73,105,25,'ITALIA',tattr,2,16,visual,NIL]:newgadget,[TAG_DONE])
  268.     but_fre:=CreateGadgetA(BUTTON_KIND,but_ita,[5,106,105,25,'FRANCE',tattr,3,16,visual,NIL]:newgadget,[TAG_DONE])
  269.     but_can:=CreateGadgetA(BUTTON_KIND,but_fre,[5,139,105,25,'CANADA',tattr,5,16,visual,NIL]:newgadget,[TAG_DONE])
  270.     but_usa:=CreateGadgetA(BUTTON_KIND,but_can,[5,172,105,25,'USA',tattr,6,16,visual,NIL]:newgadget,[TAG_DONE])
  271.  
  272.     IF (lwindow:=OpenWindowTagList(NIL,
  273.                                 [WA_LEFT,100,
  274.                                 WA_TOP,100,
  275.                                 WA_WIDTH,124,
  276.                                 WA_HEIGHT,227,
  277.                                 WA_IDCMP,$26C,
  278.                                 WA_FLAGS,$160E,
  279.                                 WA_GADGETS,langglist,
  280.                                 WA_TITLE,'Language',
  281.                                 WA_CUSTOMSCREEN,scr,
  282.                                 TAG_DONE]))=NIL THEN PrintF('Unable to open window!\n')
  283.  
  284.     REPEAT
  285.         wait4mess(lwindow)
  286.         SELECT class
  287.             CASE IDCMP_REFRESHWINDOW
  288.             CASE IDCMP_MOUSEBUTTONS
  289.             CASE IDCMP_GADGETDOWN
  290.                 class:=IDCMP_GADGETUP
  291.             CASE IDCMP_GADGETUP
  292.                 id:=iadd.gadgetid
  293.                 SELECT id
  294.                     CASE GA_BUT_ENG
  295.                         playsnd('click.raw',10000)
  296.                         playsnd('thankbri.raw',15000)
  297.                         playsnd('gb.raw',13000)
  298.                         checkquit:=TRUE
  299.                     CASE GA_BUT_GER
  300.                         playsnd('click.raw',10000)
  301.                         playsnd('thankdeu.raw',15000)
  302.                         playsnd('deutschland.raw',13000)
  303.                         checkquit:=TRUE
  304.                     CASE GA_BUT_ITA
  305.                         playsnd('click.raw',10000)
  306.                         playsnd('thankita.raw',15000)
  307.                         playsnd('italia.raw',13000)
  308.                         checkquit:=TRUE
  309.                     CASE GA_BUT_FRE
  310.                         playsnd('click.raw',10000)
  311.                         playsnd('thankfra.raw',15000)
  312.                         playsnd('france.raw',13000)
  313.                         checkquit:=TRUE
  314.                     CASE GA_BUT_CAN
  315.                         playsnd('click.raw',10000)
  316.                         playsnd('thankcan.raw',15000)
  317.                         playsnd('canada.raw',13000)
  318.                         checkquit:=TRUE
  319.                     CASE GA_BUT_USA
  320.                         playsnd('click.raw',10000)
  321.                         playsnd('thankusa.raw',15000)
  322.                         playsnd('usa.raw',13000)
  323.                         checkquit:=TRUE
  324.                 ENDSELECT
  325.             CASE IDCMP_CLOSEWINDOW
  326.                 checkquit:=TRUE
  327.             ENDSELECT
  328.         UNTIL checkquit=TRUE
  329.  
  330. IF lwindow THEN CloseWindow(lwindow)
  331. IF langglist THEN FreeGadgets(langglist)
  332. IF visual THEN FreeVisualInfo(visual)
  333.  
  334. ENDPROC
  335.  
  336. PROC maindisplay()
  337.  
  338. IF mbitmap>NIL
  339.  
  340. mframe:=[mbitmap,
  341.         scr.rastport,
  342.         mbitmapsize,
  343.         DISWIDTH,
  344.         DISHEIGHT,
  345.         DISDEPTH,
  346.         0,
  347.         0,
  348.         0,
  349.         0]:framepar
  350.  
  351. showbitmap(mframe)
  352. ENDIF
  353.  
  354.  
  355. ENDPROC
  356.  
  357.  
  358.  
  359. ->Procedure for setting up the main window gadgets
  360. PROC maingads()
  361. DEF id,
  362.     tattr:PTR TO textattr,
  363.     mwindow:PTR TO window,
  364.     mainglist,
  365.     checkquit,
  366.     but_start,
  367.     but_options,
  368.     but_story,
  369.     but_credits,
  370.     but_quit,
  371.     x,y,
  372.     reopen=NIL,
  373.     noclosewin=NIL,
  374.     quitprog=NIL
  375.  
  376.  
  377. tattr:=['WebFixed.font',15,0,0]:textattr
  378. IF (visual:=GetVisualInfoA(scr,NIL))=NIL THEN PrintF('Unable to get visual information!\n')
  379. IF (mainglist:=CreateContext({mainglist}))=NIL THEN PrintF('Unable to get main g list!\n')
  380. but_start:=CreateGadgetA(BUTTON_KIND,mainglist,[5,5,74,21,'START',tattr,0,16,visual,0]:newgadget,[TAG_DONE])
  381. but_options:=CreateGadgetA(BUTTON_KIND,but_start,[82,5,74,21,'OPTIONS',tattr,1,16,visual,NIL]:newgadget,[TAG_DONE])
  382. but_story:=CreateGadgetA(BUTTON_KIND,but_options,[159,5,74,21,'STORY',tattr,2,16,visual,NIL]:newgadget,[TAG_DONE])
  383. but_credits:=CreateGadgetA(BUTTON_KIND,but_story,[236,5,74,21,'CREDITS',tattr,3,16,visual,NIL]:newgadget,[TAG_DONE])
  384. but_quit:=CreateGadgetA(BUTTON_KIND,but_credits,[313,5,74,21,'QUIT',tattr,4,16,visual,NIL]:newgadget,[TAG_DONE])
  385.  
  386.  
  387. IF (mwindow:=OpenWindowTagList(NIL,
  388.                                             [WA_LEFT,120,
  389.                                              WA_TOP,420,
  390.                                              WA_WIDTH,392,
  391.                                              WA_HEIGHT,30,
  392.                                              WA_CLOSEGADGET,NIL,
  393.                                              WA_BACKDROP,TRUE,
  394.                                              WA_BORDERLESS,TRUE,
  395.                                              WA_IDCMP,$37C,
  396.                                              WA_FLAGS,$408,
  397.                                              WA_GADGETS,mainglist,
  398.                                              WA_ACTIVATE,TRUE,
  399.                                              WA_CUSTOMSCREEN,scr,
  400.                                              TAG_DONE]))=NIL THEN PrintF('Unable to open window!\n')
  401.  
  402.  
  403. REPEAT
  404.     wait4mess(mwindow)
  405.     SELECT class
  406.         CASE IDCMP_REFRESHWINDOW
  407.         CASE IDCMP_MOUSEBUTTONS
  408.             CASE IDCMP_GADGETDOWN
  409.                 class:=IDCMP_GADGETUP
  410.             CASE IDCMP_GADGETUP
  411.                 id:=iadd.gadgetid
  412.                 SELECT id
  413.                     CASE GA_START
  414.                         y:=480
  415.                         FOR x:=1 TO 120
  416.                             ScrollRaster(scr.rastport,0,4,0,0,DISWIDTH,y)
  417.                             y:=y-4
  418.                         ENDFOR
  419.                         checkquit:=TRUE
  420.                     CASE GA_OPTIONS
  421.                         checkquit:=TRUE
  422.                     CASE GA_STORY
  423.                         CloseWindow(mwindow)
  424.                         storydisplay()
  425.                         checkquit:=TRUE
  426.                         reopen:=TRUE
  427.                         noclosewin:=TRUE
  428.                     CASE GA_CREDITS
  429.                         CloseWindow(mwindow)
  430.                         creditsdisplay()
  431.                         checkquit:=TRUE
  432.                         reopen:=TRUE
  433.                         noclosewin:=TRUE
  434.                     CASE GA_QUIT
  435.                         quitprog:=TRUE
  436.                         checkquit:=TRUE
  437.                 ENDSELECT
  438.             CASE IDCMP_CLOSEWINDOW
  439.                 checkquit:=TRUE
  440.             ENDSELECT
  441.         UNTIL checkquit=TRUE
  442.  
  443. IF (noclosewin=NIL) THEN CloseWindow(mwindow)
  444. IF mainglist THEN FreeGadgets(mainglist)
  445. IF visual THEN FreeVisualInfo(visual)
  446.  
  447. IF quitprog=TRUE THEN Raise(PROGQUIT)
  448.  
  449. IF (reopen=TRUE)
  450.     maindisplay()
  451.     maingads()
  452. ENDIF
  453.  
  454. ENDPROC
  455.  
  456. ->Story Display
  457. PROC storydisplay()
  458. DEF sbitmap,
  459.     sbitmapsize,
  460.     sframe:framepar
  461.  
  462.     Mt_StopInt()
  463.     sbitmap,sbitmapsize:=loadfile('storypic.raw',MEMF_CHIP)
  464.  
  465.     sframe:=[sbitmap,
  466.             scr.rastport,
  467.             sbitmapsize,
  468.             DISWIDTH,
  469.             DISHEIGHT,
  470.             DISDEPTH,
  471.             0,
  472.             0,
  473.             0,
  474.             0]:framepar
  475.  
  476.     showbitmap(sframe)
  477.     Execute('c:play16 story.raw FREQ=14000',NIL,NIL)
  478.     Move(scr.rastport,0,0)
  479.     ClearScreen(scr.rastport)
  480.     FreeMem(sbitmap,sbitmapsize)
  481.     Delay(30)
  482.     Mt_StartInt(music)
  483. ENDPROC
  484.  
  485. PROC creditsdisplay()
  486. DEF font,
  487.     fontatts
  488.  
  489. fontatts:=['WebFixed.font',15,0,0]
  490. font:=OpenDiskFont(fontatts)
  491. SetFont(scr.rastport,font)
  492. cls()
  493. textcentre(scr.rastport,'GAME CONCEPT & DESIGN',21,100)
  494. textcentre(scr.rastport,'IAN CHAPMAN',11,200)
  495. textcentre(scr.rastport,'MARC BRADSHAW',13,300)
  496. Delay(100)
  497. cls()
  498. textcentre(scr.rastport,'PROGRAM CODING',14,100)
  499. textcentre(scr.rastport,'IAN CHAPMAN',11,200)
  500. Delay(100)
  501. cls()
  502. textcentre(scr.rastport,'GFX',3,100)
  503. textcentre(scr.rastport,'IAN CHAPMAN',11,200)
  504. textcentre(scr.rastport,'JONATHAN CORNS',14,300)
  505. Delay(100)
  506. cls()
  507. textcentre(scr.rastport,'SFX',3,100)
  508. textcentre(scr.rastport,'IAN CHAPMAN',11,200)
  509. textcentre(scr.rastport,'JONATHAN CORNS',14,300)
  510. Delay(100)
  511. cls()
  512. textcentre(scr.rastport,'DEVELOPMENT EQUIPMENT',21,100)
  513. Delay(100)
  514.  
  515. CloseFont(font)
  516.  
  517. ENDPROC
  518.  
  519. ->Disk Animation
  520. PROC diskdisplay()
  521. DEF x,
  522.     disk1,
  523.     disk2,
  524.     disk3,
  525.     disksize,
  526.     diskframe:framepar
  527.  
  528. diskpal()
  529. disk1,disksize:=loadfile('disk.raw',MEMF_CHIP)
  530. disk2,disksize:=loadfile('disk2.raw',MEMF_CHIP)
  531. disk3,disksize:=loadfile('disk3.raw',MEMF_CHIP)
  532.  
  533. diskframe:=[disk1,
  534.             scr.rastport,
  535.             disksize,
  536.             166,
  537.             156,
  538.             DISDEPTH,
  539.             0,
  540.             0,
  541.             230,
  542.             162]:framepar
  543.  
  544. REPEAT
  545. Delay(50)
  546. diskframe.bitmapptr:=disk1
  547. showbitmap(diskframe)
  548. Delay(2)
  549. diskframe.bitmapptr:=disk2
  550. showbitmap(diskframe)
  551. Delay(2)
  552. diskframe.bitmapptr:=disk3
  553. showbitmap(diskframe)
  554. Delay(2)
  555. diskframe.bitmapptr:=disk2
  556. showbitmap(diskframe)
  557. Delay(2)
  558. diskframe.bitmapptr:=disk1
  559. showbitmap(diskframe)
  560. UNTIL Mouse()>1
  561.  
  562. FOR x:=1 TO 80
  563. ScrollRaster(scr.rastport,0,1,230,162,396,240)
  564. ScrollRaster(scr.rastport,0,-1,230,240,396,318)
  565. ENDFOR
  566.  
  567. FreeMem(disk1,disksize)
  568. FreeMem(disk2,disksize)
  569. FreeMem(disk3,disksize)
  570. ENDPROC
  571.  
  572.  
  573.  
  574. ->Wilf Animation
  575. PROC wilfdisplay()
  576. DEF  wilf1,
  577.      wilf2,
  578.      wilf3,
  579.      wilf4,
  580.      wilf5,
  581.      wilfsize,
  582.      wframe:framepar
  583.  
  584.  
  585. ->wbitmap,wbitmapsize:=loadfile('wilf.raw',MEMF_CHIP)
  586.  
  587. wilf1,wilfsize:=loadfile('wilfnorm.raw',MEMF_CHIP)
  588. wilf2,wilfsize:=loadfile('wilfleft.raw',MEMF_CHIP)
  589. wilf3,wilfsize:=loadfile('wilfright.raw',MEMF_CHIP)
  590. wilf4,wilfsize:=loadfile('wilfup.raw',MEMF_CHIP)
  591. wilf5,wilfsize:=loadfile('wilfdown.raw',MEMF_CHIP)
  592.  
  593. wframe:=[wilf1,
  594.         scr.rastport,
  595.         wilfsize,
  596.         97,
  597.         154,
  598.         DISDEPTH,
  599.         0,
  600.         0,
  601.         230,
  602.         162]:framepar
  603.  
  604.  
  605. showbitmap(wframe)
  606. playsnd('inhelp.raw',15000)
  607.  
  608. REPEAT
  609.  
  610. wframe.bitmapptr:=wilf2
  611. showbitmap(wframe)
  612. Delay(25)
  613.  
  614. wframe.bitmapptr:=wilf1
  615. showbitmap(wframe)
  616. Delay(33)
  617.  
  618. wframe.bitmapptr:=wilf3
  619. showbitmap(wframe)
  620. Delay(28)
  621.  
  622. wframe.bitmapptr:=wilf1
  623. showbitmap(wframe)
  624. Delay(29)
  625.  
  626. wframe.bitmapptr:=wilf4
  627. showbitmap(wframe)
  628. Delay(25)
  629.  
  630. wframe.bitmapptr:=wilf1
  631. showbitmap(wframe)
  632. Delay(45)
  633.  
  634. wframe.bitmapptr:=wilf5
  635. showbitmap(wframe)
  636. Delay(5)
  637.  
  638. wframe.bitmapptr:=wilf1
  639. showbitmap(wframe)
  640. Delay(15)
  641.  
  642. wframe.bitmapptr:=wilf2
  643. showbitmap(wframe)
  644. Delay(35)
  645.  
  646. wframe.bitmapptr:=wilf1
  647. showbitmap(wframe)
  648. Delay(50)
  649.  
  650. wframe.bitmapptr:=wilf3
  651. showbitmap(wframe)
  652. Delay(70)
  653.  
  654. wframe.bitmapptr:=wilf1
  655. showbitmap(wframe)
  656. Delay(80)
  657.  
  658. UNTIL Mouse()>1
  659.  
  660. FreeMem(wilf1,wilfsize)
  661. FreeMem(wilf2,wilfsize)
  662. FreeMem(wilf3,wilfsize)
  663. FreeMem(wilf4,wilfsize)
  664. FreeMem(wilf5,wilfsize)
  665.  
  666. ENDPROC
  667.  
  668.  
  669. PROC gamesetup()
  670. DEF gamewindow:PTR TO window,
  671.     controlwindow:PTR TO window,
  672.     twen,
  673.     twenty:framepar,
  674.     twentysize,
  675.     placex,
  676.     placey,
  677.     click:esound,
  678.     totalunits=NIL,
  679.     x
  680.  
  681. loadraw('click.raw',click)
  682.  
  683. cls()
  684. mainpal()
  685.  
  686. twen,twentysize:=loadfile('20.raw',MEMF_CHIP)
  687.  
  688.  
  689. IF (gamewindow:=OpenWindowTagList(NIL,
  690.                                         [WA_LEFT,NIL,
  691.                                         WA_TOP,NIL,
  692.                                         WA_WIDTH,DISWIDTH-200,
  693.                                         WA_HEIGHT,DISHEIGHT,
  694.                                         WA_CLOSEGADGET,NIL,
  695.                                         WA_BACKDROP,TRUE,
  696.                                         WA_BORDERLESS,TRUE,
  697.                                         WA_IDCMP,$37C,
  698.                                         WA_FLAGS,$408,
  699.                                         WA_GADGETS,NIL,
  700.                                         WA_ACTIVATE,TRUE,
  701.                                         WA_CUSTOMSCREEN,scr,
  702.                                         TAG_DONE]))=NIL THEN PrintF('Unable to open game window!\n')
  703. twenty:=[twen,
  704.         gamewindow.rport,
  705.         twentysize,
  706.         BOXSIZE,
  707.         BOXSIZE,
  708.         DISDEPTH,
  709.         0,
  710.         0,
  711.         0,
  712.         0]:framepar
  713.  
  714.  
  715. REPEAT
  716.  
  717.  
  718. IF gamewindow.mousex>430
  719.     IF gamewindow.mousex<441 THEN ScrollRaster(gamewindow.rport,BOXSIZE,0,0,0,DISWIDTH,DISHEIGHT)
  720. ELSEIF gamewindow.mousex<10
  721.     ScrollRaster(gamewindow.rport,-BOXSIZE,0,0,0,DISWIDTH,DISHEIGHT)
  722. ELSEIF gamewindow.mousey<10
  723.     ScrollRaster(gamewindow.rport,0,-BOXSIZE,0,0,DISWIDTH,DISHEIGHT)
  724. ELSEIF gamewindow.mousey>470
  725.     ScrollRaster(gamewindow.rport,0,BOXSIZE,0,0,DISWIDTH,DISHEIGHT)
  726. ENDIF
  727.  
  728.  
  729. IF Mouse()=1
  730.     unitlist[totalunits].energy:=Rnd(200)
  731.     totalunits:=totalunits+1
  732.     playsndnoload(click,22000)
  733.     placex:=Div(gamewindow.mousex,BOXSIZE)
  734.     placey:=Div(gamewindow.mousey,BOXSIZE)
  735.     twenty.destx:=Mul(placex,BOXSIZE)
  736.     twenty.desty:=Mul(placey,BOXSIZE)
  737.     showbitmap(twenty)
  738.  
  739. ENDIF
  740.  
  741. UNTIL Mouse()>1
  742.  
  743. PrintF('Total Number of Units = \d\n',totalunits)
  744. FOR x:=0 TO (totalunits-1)
  745. PrintF('Unit energy values = \d\n',unitlist[x].energy)
  746. ENDFOR
  747.  
  748. clearsound(click)
  749. CloseWindow(gamewindow)
  750.  
  751. ENDPROC
  752.  
  753. /**************ROUTINES*************/
  754.  
  755. PROC cls()
  756. Move(scr.rastport,0,0)
  757. ClearScreen(scr.rastport)
  758. ENDPROC
  759.  
  760. PROC textcentre(raster,text,numchars,y)
  761. DEF textlen
  762.  
  763.     textlen:=TextLength(raster,text,numchars)
  764.     Move(raster,Div((DISWIDTH-textlen),2),y)
  765.     Text(raster,text,numchars)
  766. ENDPROC
  767.  
  768.  
  769. ->Procedure to wait for a message from chosen window and return its class
  770. PROC wait4mess(win:PTR TO window)
  771. DEF mes:PTR TO intuimessage,
  772.     code
  773.  
  774. REPEAT
  775.     class:=0
  776.     IF mes:=Gt_GetIMsg(win.userport)
  777.         class:=mes.class
  778.         code:=mes.code
  779.         iadd:=mes.iaddress
  780.         Gt_ReplyIMsg(mes)
  781.     ELSE
  782.         WaitPort(win.userport)
  783.     ENDIF
  784. UNTIL class
  785. ENDPROC
  786.  
  787.  
  788. ->Procedure to play a sample
  789. PROC playsnd(fname,freq)
  790. DEF snd:esound
  791. loadraw(fname,snd)
  792. playsound(snd,freq,[1,2,4,8]:CHAR)
  793. clearsound(snd)
  794. ENDPROC
  795.  
  796. PROC playsndnoload(snd:PTR TO esound,freq)
  797. playsound(snd,freq,[1,2,4,8]:CHAR)
  798. ENDPROC
  799.  
  800.  
  801.  
  802. ->Procedure to load a file into chosen memory type and return pointer
  803. PROC loadfile(fname,memtype)
  804. DEF fh=NIL, mem=NIL, len=NIL
  805. len:=FileLength(fname)
  806. IF (fh:=Open(fname,MODE_OLDFILE))<>NIL
  807.     IF (mem:=AllocMem(len,memtype))<>NIL
  808.         Read(fh,mem,len)
  809.     ENDIF
  810.     Close(fh)
  811. ELSE
  812.     mem:=0
  813.     PrintF('Unable to open file \s!\n',fname)
  814. ENDIF
  815.  
  816. ENDPROC mem,len
  817.  
  818.  
  819. ->Palette for main picture display
  820. PROC mainpal()
  821. LoadRGB32(scr.viewport,
  822.             [$01000000,$18000000,$20000000,$10000000,$59000000,$59000000,$59000000,$79000000,
  823.             $8A000000,$BE000000,$82000000,$96000000,$C6000000,$96000000,$96000000,$96000000,
  824.             $71000000,$82000000,$B2000000,$82000000,$82000000,$82000000,$FF000000,$FF000000,
  825.             $FF000000,$C6000000,$DF000000,$F7000000,$96000000,$A6000000,$CE000000,$8A000000,
  826.             $9E000000,$C6000000,$9E000000,$A6000000,$CE000000,$A6000000,$AE000000,$D6000000,
  827.             $69000000,$79000000,$B2000000,$8A000000,$9E000000,$CE000000,$9E000000,$AE000000,
  828.             $D6000000,$71000000,$82000000,$BE000000,$61000000,$61000000,$61000000,$8A000000,
  829.             $96000000,$C6000000,$82000000,$71000000,$51000000,$69000000,$79000000,$AE000000,
  830.             $BE000000,$D6000000,$F7000000,$79000000,$69000000,$49000000,$79000000,$79000000,
  831.             $79000000,$69000000,$69000000,$69000000,$49000000,$49000000,$49000000,$79000000,
  832.             $8A000000,$C6000000,$96000000,$9E000000,$CE000000,$E7000000,$EF000000,$F7000000,
  833.             $51000000,$51000000,$51000000,$CE000000,$DF000000,$F7000000,$61000000,$71000000,
  834.             $B2000000,$BE000000,$D6000000,$EF000000,$82000000,$8A000000,$BE000000,$8A000000,
  835.             $79000000,$59000000,$AE000000,$AE000000,$AE000000,$71000000,$71000000,$71000000,
  836.             $79000000,$69000000,$51000000,$71000000,$61000000,$49000000,$82000000,$96000000,
  837.             $BE000000,$28000000,$28000000,$28000000,$59000000,$71000000,$B2000000,$D6000000,
  838.             $DF000000,$EF000000,$EF000000,$EF000000,$F7000000,$A6000000,$B2000000,$D6000000,
  839.             $71000000,$8A000000,$BE000000,$E7000000,$E7000000,$E7000000,$61000000,$51000000,
  840.             $39000000,$96000000,$82000000,$61000000,$61000000,$79000000,$B2000000,$DF000000,
  841.             $E7000000,$F7000000,$BE000000,$CE000000,$DF000000,$C6000000,$DF000000,$EF000000,
  842.             $59000000,$51000000,$39000000,$9E000000,$8A000000,$69000000,$AE000000,$96000000,
  843.             $82000000,$AE000000,$AE000000,$96000000,$E7000000,$F7000000,$F7000000,$D6000000,
  844.             $CE000000,$D6000000,$49000000,$49000000,$41000000,$B2000000,$BE000000,$DF000000,
  845.             $61000000,$59000000,$51000000,$69000000,$69000000,$41000000,$41000000,$41000000,
  846.             $31000000,$9E000000,$9E000000,$9E000000,$59000000,$69000000,$A6000000,$A6000000,
  847.             $9E000000,$82000000,$28000000,$31000000,$31000000,$20000000,$20000000,$20000000,
  848.             $C6000000,$CE000000,$EF000000,$49000000,$59000000,$96000000,$8A000000,$71000000,
  849.             $61000000,$F7000000,$F7000000,$FF000000,$DF000000,$DF000000,$DF000000,$9E000000,
  850.             $96000000,$79000000,$41000000,$41000000,$41000000,$AE000000,$A6000000,$8A000000,
  851.             $61000000,$71000000,$AE000000,$BE000000,$B2000000,$BE000000,$96000000,$96000000,
  852.             $BE000000,$82000000,$79000000,$61000000,$AE000000,$B2000000,$D6000000,$C6000000,
  853.             $BE000000,$A6000000,$39000000,$31000000,$39000000,$CE000000,$CE000000,$CE000000,
  854.             $A6000000,$A6000000,$A6000000,$69000000,$82000000,$B2000000,$79000000,$71000000,
  855.             $49000000,$AE000000,$B2000000,$B2000000,$82000000,$71000000,$59000000,$69000000,
  856.             $59000000,$59000000,$71000000,$69000000,$51000000,$96000000,$8A000000,$82000000,
  857.             $96000000,$82000000,$69000000,$96000000,$8A000000,$61000000,$51000000,$69000000,
  858.             $AE000000,$82000000,$9E000000,$C6000000,$71000000,$59000000,$39000000,$79000000,
  859.             $82000000,$BE000000,$59000000,$69000000,$59000000,$61000000,$59000000,$39000000,
  860.             $CE000000,$CE000000,$EF000000,$9E000000,$A6000000,$D6000000,$EF000000,$EF000000,
  861.             $EF000000,$C6000000,$C6000000,$BE000000,$8A000000,$8A000000,$71000000,$71000000,
  862.             $71000000,$51000000,$59000000,$59000000,$82000000,$71000000,$79000000,$B2000000,
  863.             $D6000000,$E7000000,$F7000000,$69000000,$59000000,$39000000,$82000000,$8A000000,
  864.             $C6000000,$41000000,$31000000,$31000000,$BE000000,$DF000000,$F7000000,$C6000000,
  865.             $E7000000,$F7000000,$79000000,$79000000,$9E000000,$F7000000,$FF000000,$FF000000,
  866.             $41000000,$31000000,$20000000,$BE000000,$AE000000,$8A000000,$BE000000,$C6000000,
  867.             $E7000000,$DF000000,$E7000000,$EF000000,$AE000000,$B2000000,$DF000000,$79000000,
  868.             $28000000,$28000000,$31000000,$49000000,$28000000,$79000000,$96000000,$BE000000,
  869.             $8A000000,$82000000,$79000000,$96000000,$A6000000,$D6000000,$A6000000,$8A000000,
  870.             $71000000,$A6000000,$A6000000,$96000000,$A6000000,$79000000,$61000000,$AE000000,
  871.             $BE000000,$DF000000,$A6000000,$9E000000,$8A000000,$69000000,$79000000,$BE000000,
  872.             $59000000,$39000000,$31000000,$79000000,$69000000,$69000000,$59000000,$59000000,
  873.             $41000000,$E7000000,$DF000000,$F7000000,$A6000000,$8A000000,$82000000,$96000000,
  874.             $71000000,$59000000,$A6000000,$AE000000,$CE000000,$BE000000,$C6000000,$D6000000,
  875.             $82000000,$82000000,$69000000,$A6000000,$B2000000,$DF000000,$CE000000,$CE000000,
  876.             $AE000000,$AE000000,$C6000000,$DF000000,$49000000,$51000000,$49000000,$AE000000,
  877.             $B2000000,$8A000000,$8A000000,$59000000,$39000000,$8A000000,$82000000,$61000000,
  878.             $79000000,$79000000,$69000000,$9E000000,$AE000000,$C6000000,$D6000000,$EF000000,
  879.             $F7000000,$CE000000,$CE000000,$DF000000,$F7000000,$F7000000,$F7000000,$69000000,
  880.             $71000000,$AE000000,$DF000000,$DF000000,$BE000000,$82000000,$8A000000,$79000000,
  881.             $A6000000,$A6000000,$B2000000,$49000000,$49000000,$31000000,$8A000000,$96000000,
  882.             $9E000000,$96000000,$82000000,$71000000,$9E000000,$8A000000,$79000000,$D6000000,
  883.             $DF000000,$F7000000,$AE000000,$BE000000,$B2000000,$82000000,$71000000,$39000000,
  884.             $49000000,$49000000,$51000000,$8A000000,$79000000,$49000000,$61000000,$59000000,
  885.             $69000000,$82000000,$79000000,$8A000000,$82000000,$A6000000,$BE000000,$82000000,
  886.             $96000000,$CE000000,$49000000,$51000000,$31000000,$82000000,$69000000,$51000000,
  887.             $71000000,$79000000,$79000000,$9E000000,$A6000000,$9E000000,$A6000000,$96000000,
  888.             $96000000,$E7000000,$EF000000,$FF000000,$31000000,$20000000,$20000000,$8A000000,
  889.             $69000000,$51000000,$AE000000,$AE000000,$B2000000,$69000000,$71000000,$71000000,
  890.             $A6000000,$A6000000,$71000000,$8A000000,$8A000000,$96000000,$71000000,$51000000,
  891.             $41000000,$31000000,$41000000,$31000000,$61000000,$79000000,$AE000000,$B2000000,
  892.             $A6000000,$8A000000,$61000000,$79000000,$BE000000,$61000000,$59000000,$61000000,
  893.             $79000000,$8A000000,$9E000000,$51000000,$49000000,$41000000,$DF000000,$DF000000,
  894.             $EF000000,$D6000000,$DF000000,$E7000000,$96000000,$8A000000,$96000000,$A6000000,
  895.             $AE000000,$AE000000,$28000000,$20000000,$18000000,$41000000,$41000000,$51000000,
  896.             $49000000,$69000000,$59000000,$9E000000,$9E000000,$96000000,$71000000,$B2000000,
  897.             $79000000,$9E000000,$8A000000,$96000000,$9E000000,$9E000000,$82000000,$51000000,
  898.             $49000000,$49000000,$59000000,$71000000,$AE000000,$96000000,$82000000,$51000000,
  899.             $82000000,$79000000,$82000000,$69000000,$69000000,$71000000,$59000000,$61000000,
  900.             $59000000,$C6000000,$DF000000,$FF000000,$41000000,$8A000000,$61000000,$71000000,
  901.             $69000000,$71000000,$96000000,$A6000000,$B2000000,$20000000,$20000000,$28000000,
  902.             $71000000,$71000000,$79000000,$20000000,$28000000,$20000000,$EF000000,$EF000000,
  903.             $FF000000,$28000000,$28000000,$31000000,$EF000000,$EF000000,$E7000000,$49000000,
  904.             $59000000,$51000000,$41000000,$51000000,$51000000,$28000000,$20000000,$28000000,
  905.             $BE000000,$CE000000,$EF000000,$8A000000,$82000000,$59000000,$71000000,$8A000000,
  906.             $9E000000,$79000000,$82000000,$79000000,$B2000000,$AE000000,$AE000000,$8A000000,
  907.             $8A000000,$8A000000,$C6000000,$D6000000,$E7000000,$E7000000,$DF000000,$E7000000,
  908.             $8A000000,$96000000,$CE000000,$71000000,$61000000,$51000000,$AE000000,$AE000000,
  909.             $CE000000,$96000000,$9E000000,$96000000,$A6000000,$AE000000,$DF000000,$71000000,
  910.             $59000000,$49000000,$59000000,$51000000,$28000000,$79000000,$69000000,$59000000,
  911.             $F7000000,$EF000000,$F7000000,$A6000000,$A6000000,$8A000000,$41000000,$49000000,
  912.             $49000000,$79000000,$69000000,$39000000,$EF000000,$E7000000,$E7000000,$B2000000,
  913.             $B2000000,$D6000000,$CE000000,$DF000000,$FF000000,$71000000,$82000000,$C6000000,
  914.             $9E000000,$BE000000,$9E000000,$8A000000,$9E000000,$D6000000,$96000000,$9E000000,
  915.             $D6000000,$9E000000,$AE000000,$DF000000,$82000000,$9E000000,$BE000000,$18000000,
  916.             $20000000,$20000000,$FF000000,$F7000000,$F7000000,$18000000,$18000000,$18000000,
  917.             $51000000,$71000000,$AE000000,$61000000,$71000000,$BE000000,$96000000,$96000000,
  918.             $CE000000,$00000000]:LONG)
  919.  
  920. ENDPROC
  921.  
  922.  
  923. ->Palette for disk animation
  924. PROC diskpal()
  925. LoadRGB32(scr.viewport,
  926.             [$01000000,$00000000,$00000000,$00000000,$A2000000,$A2000000,$A2000000,$FF000000,
  927.             $FF000000,$FF000000,$FF000000,$FB000000,$00000000,$82000000,$FF000000,$00000000,
  928.             $00000000,$FF000000,$00000000,$00000000,$FF000000,$7D000000,$00000000,$FF000000,
  929.             $FF000000,$00000000,$82000000,$FF000000,$00000000,$00000000,$FF000000,$79000000,
  930.             $00000000,$FF000000,$CE000000,$00000000,$FF000000,$FF000000,$00000000,$D6000000,
  931.             $FF000000,$00000000,$82000000,$FF000000,$00000000,$00000000,$FF000000,$7D000000,
  932.             $00000000,$00000000,$00000000,$FF000000,$04000000,$08000000,$FF000000,$0C000000,
  933.             $10000000,$FF000000,$10000000,$14000000,$FF000000,$18000000,$1C000000,$FF000000,
  934.             $1C000000,$20000000,$FF000000,$20000000,$24000000,$FF000000,$28000000,$2D000000,
  935.             $FF000000,$2D000000,$31000000,$FF000000,$31000000,$35000000,$FF000000,$39000000,
  936.             $3D000000,$FF000000,$3D000000,$41000000,$FF000000,$41000000,$45000000,$FF000000,
  937.             $49000000,$4D000000,$FF000000,$4D000000,$51000000,$FF000000,$51000000,$55000000,
  938.             $FF000000,$59000000,$59000000,$FF000000,$5D000000,$61000000,$FF000000,$61000000,
  939.             $65000000,$FF000000,$69000000,$69000000,$FF000000,$6D000000,$71000000,$FF000000,
  940.             $71000000,$75000000,$FF000000,$79000000,$79000000,$FF000000,$7D000000,$82000000,
  941.             $FF000000,$82000000,$86000000,$FF000000,$8A000000,$8A000000,$FF000000,$8E000000,
  942.             $8E000000,$FF000000,$92000000,$96000000,$FF000000,$9A000000,$9A000000,$FF000000,
  943.             $9E000000,$9E000000,$FF000000,$A2000000,$A6000000,$FF000000,$AA000000,$AA000000,
  944.             $FF000000,$AE000000,$AE000000,$FF000000,$B2000000,$B6000000,$FF000000,$B6000000,
  945.             $BA000000,$FF000000,$BE000000,$BE000000,$FF000000,$C2000000,$C2000000,$FF000000,
  946.             $CA000000,$CA000000,$FF000000,$CE000000,$CE000000,$FF000000,$D2000000,$D6000000,
  947.             $FF000000,$DB000000,$DB000000,$FF000000,$DF000000,$DF000000,$FF000000,$E3000000,
  948.             $E7000000,$FF000000,$EB000000,$EB000000,$FF000000,$EF000000,$EF000000,$FF000000,
  949.             $F3000000,$F7000000,$FF000000,$FB000000,$FB000000,$FF000000,$FF000000,$FF000000,
  950.             $FF000000,$4D000000,$00000000,$00000000,$59000000,$00000000,$00000000,$71000000,
  951.             $00000000,$00000000,$86000000,$00000000,$00000000,$9E000000,$00000000,$00000000,
  952.             $B6000000,$00000000,$00000000,$CE000000,$00000000,$00000000,$E7000000,$00000000,
  953.             $00000000,$FF000000,$00000000,$00000000,$FF000000,$1C000000,$1C000000,$FF000000,
  954.             $39000000,$39000000,$FF000000,$51000000,$51000000,$FF000000,$6D000000,$6D000000,
  955.             $FF000000,$8A000000,$8A000000,$FF000000,$A2000000,$A2000000,$FF000000,$BE000000,
  956.             $BE000000,$4D000000,$24000000,$00000000,$55000000,$28000000,$00000000,$6D000000,
  957.             $35000000,$00000000,$86000000,$41000000,$00000000,$9E000000,$49000000,$00000000,
  958.             $B6000000,$59000000,$00000000,$CE000000,$65000000,$00000000,$E7000000,$71000000,
  959.             $00000000,$FF000000,$7D000000,$00000000,$FF000000,$8E000000,$1C000000,$FF000000,
  960.             $9A000000,$35000000,$FF000000,$A6000000,$51000000,$FF000000,$B2000000,$6D000000,
  961.             $FF000000,$BE000000,$86000000,$FF000000,$CE000000,$A2000000,$FF000000,$DB000000,
  962.             $BE000000,$4D000000,$49000000,$00000000,$59000000,$51000000,$00000000,$71000000,
  963.             $69000000,$00000000,$86000000,$82000000,$00000000,$9E000000,$96000000,$00000000,
  964.             $B6000000,$AE000000,$00000000,$CE000000,$C6000000,$00000000,$E7000000,$E3000000,
  965.             $00000000,$FF000000,$FF000000,$00000000,$FF000000,$FB000000,$1C000000,$FF000000,
  966.             $F7000000,$39000000,$FF000000,$FB000000,$51000000,$FF000000,$F7000000,$6D000000,
  967.             $FF000000,$F7000000,$86000000,$FF000000,$F7000000,$A2000000,$FF000000,$FB000000,
  968.             $BE000000,$00000000,$4D000000,$00000000,$00000000,$61000000,$00000000,$00000000,
  969.             $79000000,$00000000,$00000000,$8E000000,$00000000,$00000000,$A6000000,$00000000,
  970.             $00000000,$BA000000,$00000000,$00000000,$D2000000,$00000000,$00000000,$E7000000,
  971.             $00000000,$00000000,$FF000000,$00000000,$1C000000,$FF000000,$1C000000,$39000000,
  972.             $FF000000,$39000000,$55000000,$FF000000,$51000000,$71000000,$FF000000,$6D000000,
  973.             $8A000000,$FF000000,$86000000,$A6000000,$FF000000,$A2000000,$BE000000,$FF000000,
  974.             $BE000000,$00000000,$41000000,$41000000,$00000000,$59000000,$59000000,$00000000,
  975.             $71000000,$71000000,$00000000,$86000000,$86000000,$00000000,$9E000000,$9E000000,
  976.             $00000000,$B6000000,$B6000000,$00000000,$CE000000,$CE000000,$00000000,$E7000000,
  977.             $E7000000,$00000000,$FF000000,$FF000000,$59000000,$FF000000,$F7000000,$75000000,
  978.             $FF000000,$FB000000,$8A000000,$FF000000,$FF000000,$9E000000,$FF000000,$FB000000,
  979.             $BA000000,$FF000000,$FB000000,$CA000000,$FF000000,$FF000000,$DB000000,$FF000000,
  980.             $FF000000,$00000000,$20000000,$41000000,$00000000,$2D000000,$59000000,$00000000,
  981.             $39000000,$71000000,$00000000,$45000000,$86000000,$00000000,$51000000,$9E000000,
  982.             $00000000,$5D000000,$B6000000,$00000000,$69000000,$CE000000,$00000000,$75000000,
  983.             $E7000000,$00000000,$82000000,$FF000000,$1C000000,$8E000000,$FF000000,$39000000,
  984.             $9E000000,$FF000000,$51000000,$AA000000,$FF000000,$6D000000,$BA000000,$FF000000,
  985.             $8A000000,$C6000000,$FF000000,$A2000000,$D2000000,$FF000000,$BE000000,$E3000000,
  986.             $FF000000,$00000000,$04000000,$4D000000,$00000000,$04000000,$65000000,$00000000,
  987.             $04000000,$79000000,$00000000,$04000000,$8E000000,$00000000,$04000000,$A6000000,
  988.             $00000000,$00000000,$BA000000,$00000000,$04000000,$D2000000,$00000000,$04000000,
  989.             $E7000000,$00000000,$00000000,$FF000000,$1C000000,$24000000,$FF000000,$39000000,
  990.             $41000000,$FF000000,$51000000,$5D000000,$FF000000,$6D000000,$79000000,$FF000000,
  991.             $8A000000,$92000000,$FF000000,$A2000000,$AA000000,$FF000000,$BE000000,$C6000000,
  992.             $FF000000,$28000000,$00000000,$4D000000,$35000000,$00000000,$65000000,$41000000,
  993.             $00000000,$82000000,$4D000000,$00000000,$9A000000,$59000000,$00000000,$B2000000,
  994.             $65000000,$00000000,$CA000000,$71000000,$00000000,$E7000000,$82000000,$00000000,
  995.             $FF000000,$79000000,$00000000,$FF000000,$8E000000,$1C000000,$FF000000,$96000000,
  996.             $39000000,$FF000000,$A6000000,$51000000,$FF000000,$AE000000,$6D000000,$FF000000,
  997.             $BE000000,$86000000,$FF000000,$CA000000,$A2000000,$FF000000,$DB000000,$BA000000,
  998.             $FF000000,$4D000000,$00000000,$4D000000,$5D000000,$00000000,$61000000,$75000000,
  999.             $00000000,$79000000,$8A000000,$00000000,$8E000000,$9E000000,$00000000,$A6000000,
  1000.             $B6000000,$00000000,$BA000000,$CA000000,$00000000,$D2000000,$DF000000,$00000000,
  1001.             $E7000000,$F3000000,$00000000,$FF000000,$F3000000,$1C000000,$FF000000,$FB000000,
  1002.             $39000000,$FF000000,$FB000000,$51000000,$FF000000,$FB000000,$6D000000,$FF000000,
  1003.             $FB000000,$86000000,$FF000000,$FF000000,$A2000000,$FF000000,$FF000000,$BE000000,
  1004.             $FF000000,$20000000,$00000000,$00000000,$2D000000,$04000000,$00000000,$3D000000,
  1005.             $08000000,$04000000,$49000000,$0C000000,$0C000000,$55000000,$18000000,$10000000,
  1006.             $61000000,$20000000,$18000000,$71000000,$2D000000,$24000000,$7D000000,$39000000,
  1007.             $2D000000,$86000000,$45000000,$3D000000,$9A000000,$59000000,$4D000000,$AA000000,
  1008.             $6D000000,$5D000000,$BA000000,$82000000,$75000000,$CA000000,$9A000000,$8A000000,
  1009.             $DB000000,$B2000000,$A2000000,$EF000000,$CA000000,$BE000000,$FF000000,$EB000000,
  1010.             $DF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,
  1011.             $FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,
  1012.             $FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,
  1013.             $FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,
  1014.             $FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,
  1015.             $FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,
  1016.             $FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,
  1017.             $FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,
  1018.             $FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,
  1019.             $FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,
  1020.             $FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,
  1021.             $FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,$FF000000,
  1022.             $FF000000,$00000000]:LONG)
  1023. ENDPROC
  1024.  
  1025.  
  1026.